package com.jack.base.mapper;

import com.jack.config.mybatis.DataSource;

/**
 * mapper 接口类 基类
 * @Description:
 * @author  Li Jiakui
 * @date 2015年7月1日下午1:47:13
 * @version  [Copyright (c) 2014 V001]
 * @see  [相关类/方法]
 * @since  [产品/模块版本]
 */
public interface BaseMapper<T> {
    /**
	 * 根据主键删除
	 * @author LI JIA KUI 
	 * @date 2015年7月1日 下午12:25:56 
	 * @param primaryKey
	 * @return
	 * @see [类、类#方法、类#成员]
	 */
    @DataSource("master")
    int deleteByPrimaryKey(Object primaryKey);
    /**
	 * 新增
	 * @author LI JIA KUI 
	 * @date 2015年7月1日 下午12:25:56 
	 * @param entity
	 * @return
	 * @see [类、类#方法、类#成员]
	 */
    @DataSource("master")
    int insert(T entity);
    /**
	 * 选择性新增
	 * @author LI JIA KUI 
	 * @date 2015年7月1日 下午12:25:56 
	 * @param entity
	 * @return
	 * @see [类、类#方法、类#成员]
	 */
    @DataSource("master")
    int insertSelective(T entity);
    /**
	 * 根据主键查询
	 * @author LI JIA KUI 
	 * @date 2015年7月1日 下午12:25:56 
	 * @param primaryKey
	 * @return
	 * @see [类、类#方法、类#成员]
	 */
    @DataSource("slave")
    T selectByPrimaryKey(Object primaryKey);
    /**
	 * 根据主键选择性修改
	 * @author LI JIA KUI 
	 * @date 2015年7月1日 下午12:25:56 
	 * @param entity
	 * @return
	 * @see [类、类#方法、类#成员]
	 */
    @DataSource("master")
    int updateByPrimaryKeySelective(T entity);
    /**
	 * 根据主键修改
	 * @author LI JIA KUI 
	 * @date 2015年7月1日 下午12:25:56 
	 * @param entity
	 * @return
	 * @see [类、类#方法、类#成员]
	 */
    @DataSource("master")
    int updateByPrimaryKey(T entity);
}
